﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Interfaces;

namespace Model 
{
    public class Postering : IPosteringsdata
    {
        // Attributter
        private long bilagsNr;
        private string posteringsType;
        private string beskrivelse;
        private double beløb;
        private DateTime dato;
        private bool aktiv;

        private Årsregnskab mitÅrsregnskab;     // associering til et årsregnskabs-objekt

        // Konstruktør
        public Postering(long bilagsNr, string posteringsType, string beskrivelse, double beløb, DateTime dato, bool aktiv)
        {
            this.bilagsNr = bilagsNr;
            this.posteringsType = posteringsType;
            this.beskrivelse = beskrivelse;
            this.beløb = beløb;
            this.dato = dato;
            this.aktiv = aktiv;

            mitÅrsregnskab = null;
        }

        #region Associerings metoder

        // metode til at skabe associeringen mellem et posterings-objekt og et årsregnskabs-objekt
        public void TilknytÅrsregnskab(Årsregnskab etÅrsregnskab)
        {
            mitÅrsregnskab = etÅrsregnskab;
        }

        // metode til at fjerne associeringen mellem et post-objekt og et årsregnskabs-objekt
        public void FjernÅrsregnskabsTilknytning()
        {
            mitÅrsregnskab = null;
        }

        // metode til at hente et associeret årsregnskabs-objekt
        public Årsregnskab GetÅrsregnskab()
        {
            return mitÅrsregnskab;
        }

        #endregion

        #region Properties

        public long BilagsNr
        {
            get { return bilagsNr; }
        }

        public string PosteringsType
        {
            get { return posteringsType; }
        }

        public string Beskrivelse
        {
            get { return beskrivelse; }
        }

        public double Beløb
        {
            get { return beløb; }
        }

        public DateTime Dato
        {
            get { return dato; }
        }

        public bool Aktiv
        {
            get { return aktiv; }
            set { aktiv = value; }
        }

        #endregion
    }
}
